#ifndef HEXEDITLINEBUFFER_H
#define HEXEDITLINEBUFFER_H

#include <wx/dc.h>

enum CharacterStyles {
  stNormal,
  stSelect,
  stCurCar,
  stCurNon,

  stCount
};


class HexEditLineBuffer {
  public:


    HexEditLineBuffer( unsigned length );


    ~HexEditLineBuffer();


    void Reset( char defaultChar = ' ', char defaultStyle = 0 );


    void PutChar( char ch, char style = 0 );


    inline void PutString( const char* ch, char style = 0 ) { while( *ch ) PutChar( *ch++, style ); }


    void Draw( wxDC& dc, int x, int y, int fontX, int fontY, wxColour* foregrounds, wxColour* backgrounds );

  private:

    char* m_Buffer;
    char* m_Position;
    char* m_End;
};

#endif
